<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="awesomebox,pitch,correction,autotune,auto-tune,decabear" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>AwesomeBox | Open-Source Real-Time Pitch-Correction (is that enough hyphens for ya?)</title>
<link href="css/awesomebox.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="wrapper">
	<div id="header">
		<div id="logo">
			<h1><a href="#">AwesomeBox</a></h1>
			<p> by <a href="http://www.dfgh.org/">Ravi Parikh</a> and <a href="#">Keegan Poppen</a></p>
		</div>
		<div id="search">
			<form method="get" action="">
				<fieldset>
				<input type="text" name="s" id="search-text" size="15" value="why do we have a f*cking search box?" />
				<input type="submit" id="search-submit" value="GO" />
				</fieldset>
			</form>
		</div>
	</div>
	<!-- end #header -->
	<div id="menu">
		<ul>
			<li class="current_page_item"><a href="http://www.dfgh.org">Back to DFGH</a></li>
			<li><a href="#download">Download AwesomeBox</a></li>
		</ul>
	</div>
	<!-- end #menu -->
	<div id="page">
	<div id="page-bgbtm">
		<div id="content">
			<div class="post">
				<h2 class="title" id="whatisit">What is AwesomeBox?</h2>
				<div class="entry">
					<p>AwesomeBox is a state of the art open-source pitch corrector, in the vein of Antares Auto-Tune. We are of course using the phrase "state of the art" very loosely, and it may or may not be a virus that wipes your hard drive clean.</p>
					<p>How about some <strong>AUDIO SAMPLES</strong>??!? Well sure. Here's a snippet of a pop song my roommate and I are working on, pitch-corrected into perfection:</p>
					<p>
					<script language="JavaScript" src="audio/audio-player.js"></script>
					<object type="application/x-shockwave-flash" data="audio/player.swf" id="audioplayer1" height="24" width="290">
					<param name="movie" value="audio/player.swf">
					<param name="FlashVars" value="playerID=audioplayer1&soundFile=audio/hotsample.mp3">
					<param name="quality" value="high">
					<param name="menu" value="false">
					<param name="wmode" value="transparent">
					</object>
					</p>
					<p>For the, uh, other end of the spectrum, this is me singing badly into my bad laptop mic (despite the drop in sound quality, <i>the pitch correction still works</i>):</p>
					<p>
					<script language="JavaScript" src="audio/audio-player.js"></script>
					<object type="application/x-shockwave-flash" data="audio/player.swf" id="audioplayer1" height="24" width="290">
					<param name="movie" value="audio/player.swf">
					<param name="FlashVars" value="playerID=audioplayer1&soundFile=audio/awful.mp3">
					<param name="quality" value="high">
					<param name="menu" value="false">
					<param name="wmode" value="transparent">
					</object>
					</p>

					<!-- TODO -->
				</div>
			</div>
			<div class="post">
				<h2 class="title" id="whatisit">How do I use it?</h2>
				<div class="entry">
					<p>Here's a screenshot:</p>
					<p><img src="images/fullsn.png" alt="You are a douchebag" width="600px"/></p>
					<p>Looks complicated, right? That's because you're stupid. Lemme break it down for ya. The main functionality of our app takes place in what we call "Snap Mode." This is essentially a mode where AwesomeBox corrects the audio input to the nearest actual pitch. The white squiggly thing at the bottom shows you how much you're off the correct note: above the middle line means you're sharp, below means flat. You can select what scale you want it to correct to by clicking on the piano in the middle of the app. In the screenshot above, a C Major scale is selected. In the piano below, we have a pentatonic scale selected: </p>
					<p><img src="images/piano.png" alt="You are a douchebag" width="600px"/></p>
					<p>So in that example you can slide around your voice as drunkenly as you want and it'll snap to the correct pitches. Of course, there are a few parameters you can control. The attack rate tells us how quickly you want AwesomeBox to correct your voice (i.e. how bad a singer <i>are</i> you?). At 0ms attack, you'll get the stereotypical Kanye-on-808s-and-Heartbreaks-or-T-Pain-on-everything-he's-ever-done "robot voice" effect. Increasing the attack allows for more natural (but not nearly as fun!) pitch correction. If you want to add some cheesy-sounding vibrato to your voice, well the vibrato control is your friend: </p>
					<p><img src="images/vibrato.png" alt="You are a douchebag" width="300px"/></p>
					<p>Mess with the depth and rate to get the exact vibrato sound you want. We also have a MIDI mode that you can get to by toggling the "snap mode" switch in the upper right. (If you don't see this button, it's because you need to have a MIDI controller plugged in). If you go to MIDI mode, you can play notes on a MIDI controller, and it will pitch correct your voice to the note you are playing. Currently, we do not support polyphony though you can fix that if you want (see below to get the source code).</p>
				</div>
			</div>
			<div class="post">
				<h2 class="title" id="download">How do I get it?</h2>
				<div class="entry">
					<p>AwesomeBox is written in C++ and should therefore be cross-platform. However we've only tested on Mac OS X. To get just the Mac executable <a href="awesomebox/awesomebox">click here</a>. Run the executable by double-clicking, and it'll open in the Terminal and you'll see the cool stuff. If you want the C++ source code, <a href="awesomebox/awesomebox.zip">download a ZIP file here</a>. Type "make" in the terminal when in the directory of AwesomeBox, and then type "./finalproj" to run it. If you want to run on Linux or Windows, you will need to modify the makefile. You're probably smart enough to figure that out. We sure aren't.</p>
				</div>
			</div>
			<div class="post">
				<h2 class="title">Tecknology</h2>
				<div class="entry">
					<p>So what's this look like under the hood, exactly? Good question. The pitch detection is done using auto-correlation, and the pitch shifting is done using something else I can't quite remember the name of.</p>
				</div>
			</div>
			<div class="post">
				<h2 class="title">The Design Process</h2>
				<div class="entry">
					<p>If you're still with us at this point you are a loser. Basically, we conceived the idea in early October: an auto-tuner/harmonizer/pitch corrector that would put all others to shame. We spent the next few weeks familiarizing ourselves with <a href="http://www.music.mcgill.ca/~gary/rtaudio/">RTAudio</a> and RTMidi, and how to do sound processing using C++. After this we started writing AwesomeBox. First, we built the basic back-end architecture to be very easily extensible; once we had this in place, it was very easy to add whatever pitch correction algorithms we wanted to use. We had a very rudimentary GUI in place initially (just a waterfall plot of the frequency spectrum), but this slowly involved into what it is today. We added several filters and parameters for the user to change (as described above). This was easy to do due to how we built the back-end system.</p>
				</div>
			</div>
			<div class="post">
				<h2 class="title">"I'm T-Pain, you know me! Shaw-tay!"</h2>
				<div class="entry">
					<p>Hold yer horses (metaphorically speaking). Unless you own a top hat and are a big black dude, you are <strong>NOT</strong> T-Pain. Even then, you could be like Rick Ross or someone. If he were to wear a top hat, that is.</p>
				</div>
			</div>
			<div class="post">
				<h2 class="title">How can I help?</h2>
				<div class="entry">
					<p>We don't need your help, get out. But if you really want, download the source code and improve it. God knows the GUI could use a facelift or three. Also there's always fun to be had in improving our pitch detection/pitch shift algorithms.</p>
					<p>Also, if you want you can record songs using our pitch corrector. Send 'em to us, and we'll make fun of you free of charge.</p>
					<p>Email us at <a href="mailto:decabear@gmail.com">decabear@gmail.com</a> with any questions/comments/whatever.</p>
				</div>
			</div>
		<div style="clear: both;">&nbsp;</div>
		</div>
		<!-- end #content -->
		<div id="sidebar">
			<ul>
				<li>
					<h2>About Us</h2>
					<p>We are two students at Stanford University who decided to build our very own pitch corrector and give it away for free to <strong>STICK IT TO THA MAN</strong>! Actually it was for <a href="https://ccrma.stanford.edu/courses/256a-fall-2009/">a class</a> taught by the guy who runs <a href="http://www.smule.com/">this joint</a>. Any <i>"man-sticking"</i> is purely incidental. But we placed it on the InterGoogle anyways. Feel free to download it and claim you made it all by yourself. Our public license does however stipulate that if you do that, then you have to turn around and say you were kidding, and then give us credit at some point within the next five minutes.</p>
					<p>Donations <i>NOT</i> accepted. We say that because we know we aren't gonna get any anyways, and saying that makes us sound really selfless or some sh*t like that.</p>
				</li>
				<li>
					<h2>Categories</h2>
					<ul>
						<li><a href="justkidding.html">These links lead nowhere</a></li>
						<li><a href="#">I'm tellin ya</a></li>
						<li><a href="#">There is absolutely no reason</a></li>
						<li><a href="#">To click on me.</a></li>
						<li><a href="#">Or me!</a></li>
					</ul>
				</li>
				<li>
					<h2>Blogroll</h2>
					<ul>
						<li><a href="#">wtf is a Blogroll?</a></li>
					</ul>
				</li>
				<li>
					<h2>Archives</h2>
					<ul>
						<li><a href="#">View all our past article(s)</a></li>
						<li><a href="#">Like, uh, um, uh.</a></li>
						<li><a href="#">This is our first piece of software</a></li>
						<li><a href="#">And probably our last</a></li>
						<li><a href="#">Because we hate each other</a></li>
						<li><a href="#">Just kidding!...right? Keeg?</a></li>
					</ul>
				</li>
			</ul>
		</div>
		<!-- end #sidebar -->
		<div style="clear: both;">&nbsp;</div>
	</div>
	</div>
	<!-- end #page -->
</div>
	<div id="footer">
		<p>Copyright (c) 2009 <a href="http://www.dfgh.org">DFGH.org</a>. All rights reserved. By reading this you agree to sacrifice a goat in our name.</p>
		<div style="visibility:hidden">
<script type="text/javascript" src="http://s35.sitemeter.com/js/counter.js?site=s35dfghorg">
</script>
<noscript>
<a href="http://s35.sitemeter.com/stats.asp?site=s35dfghorg" target="_top">
<img src="http://s35.sitemeter.com/meter.asp?site=s35dfghorg"/></a>
</noscript>
	<!-- Google Analytics for WordPress | http://yoast.com/wordpress/google-analytics/ -->
	<script type="text/javascript">
		var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
	</script>
	<script type="text/javascript">
		var pageTracker = _gat._getTracker("UA-6497337-1");
	</script>
	<script type="text/javascript">
		pageTracker._initData();
		
		pageTracker._trackPageview();
	</script>
	<!-- End of Google Analytics code -->
	</div>
	</div>
	<!-- end #footer -->
	
	
</body>
</html>
